package com.beidouapp.domain.pojo;

import java.io.Serializable;
import java.util.Date;

import org.hibernate.validator.constraints.NotBlank;

import com.beidouapp.domain.annotation.TranslateField;
import com.beidouapp.translate.Translatable;

/**
 * Employee entity
 */
public class Employee extends Domain implements Translatable, Serializable {
    private static final long serialVersionUID = -3295348172434343049L;

    /**
     * employee identity
     */
    private Long id;

    /**
     * index number.only used to display
     */
    private Integer userIndex;

    /**
     * employee code
     */
    private String code;

    /**
     * employee name
     */
    @NotBlank(message = "{Employee.empName.notNull}")
    private String empName;

    /**
     * 000001-0003 is female, 000001-0002 is man
     */
    @TranslateField(fullQualifiedName = "000001", targetFieldName = "sexName")
    private String sex;


    private String sexName;

    /**
     * date of birth
     */
    private Date dob;

    /**
     * 职称
     */
    private String professionalRanks;

    /**
     * 入职时间
     */
    private Date datesEmployed;

    /**
     * 身份标识
     */
    private String idCardNo;
    
	/** 身份证类型 */
	@TranslateField(fullQualifiedName = "000018", targetFieldName = "idCardTypeText")
	private String idCardType;

	/** 身份证类型 */
	private String idCardTypeText;

    /**
     * 国家
     */
    private String country;

    /**
     * 民族
     */
    private String nationality;

    /**
     * 0为未婚 1为已婚 2为离异 3为丧偶
     */
    private String marriageStatus;

    /**
     * 移动电话
     */
    private String mobilePhone;

    /**
     * 家庭电话
     */
    private String homePhone;

    /**
     * 办公电话
     */
    private String officePhone;

    /**
     * 家庭地址
     */
    private String homeAddress;

    /**
     * 住址邮政编码
     */
    private String homeZip;

    /**
     * 联系人
     */
    private String contactPerson;

    /**
     * 联系人电话
     */
    private String contactPhone;

    /**
     * 五笔码
     */
    private String wbCode;

    /**
     * 拼音码
     */
    private String pyCode;

    /**
     * 有效标识
     */
    private String enable;

    /**
     * 备注
     */
    private String descn;

    /**
     * login name for current user
     */
    private String loginName;

    /**
     * 岗位代码
     */
    @TranslateField(translatorName = "employerTranslateExecutor", fullQualifiedName = "P00001", targetFieldName = "m_positionText")
    private String position;

    /**
     * position name
     */
    private String positionText;

    /**
     *
     */
    private Date datesEmployedStartTime;

    /**
     *
     */
    private Date datesEmployedEndTime;

    /**
     *
     */
    private Date dobStartTime;

    /**
     *
     */
    private Date dobEndTime;

    private String employeeType;

    private String email;

    private Long orgId;

    public Employee() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getUserIndex() {
        return userIndex;
    }

    public void setUserIndex(Integer userIndex) {
        this.userIndex = userIndex;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getEmpName() {
        return empName;
    }

    public void setEmpName(String empName) {
        this.empName = empName;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSexName() {
        return sexName;
    }

    public void setSexName(String sexName) {
        this.sexName = sexName;
    }

    public Date getDob() {
        return dob;
    }

    public void setDob(Date dob) {
        this.dob = dob;
    }

    public String getProfessionalRanks() {
        return professionalRanks;
    }

    public void setProfessionalRanks(String professionalRanks) {
        this.professionalRanks = professionalRanks;
    }

    public Date getDatesEmployed() {
        return datesEmployed;
    }

    public void setDatesEmployed(Date datesEmployed) {
        this.datesEmployed = datesEmployed;
    }

    public String getIdCardNo() {
        return idCardNo;
    }

    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }

    public String getIdCardType() {
        return idCardType;
    }

    public void setIdCardType(String idCardType) {
        this.idCardType = idCardType;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getNationality() {
        return nationality;
    }

    public void setNationality(String nationality) {
        this.nationality = nationality;
    }

    public String getMarriageStatus() {
        return marriageStatus;
    }

    public void setMarriageStatus(String marriageStatus) {
        this.marriageStatus = marriageStatus;
    }

    public String getMobilePhone() {
        return mobilePhone;
    }

    public void setMobilePhone(String mobilePhone) {
        this.mobilePhone = mobilePhone;
    }

    public String getHomePhone() {
        return homePhone;
    }

    public void setHomePhone(String homePhone) {
        this.homePhone = homePhone;
    }

    public String getOfficePhone() {
        return officePhone;
    }

    public void setOfficePhone(String officePhone) {
        this.officePhone = officePhone;
    }

    public String getHomeAddress() {
        return homeAddress;
    }

    public void setHomeAddress(String homeAddress) {
        this.homeAddress = homeAddress;
    }

    public String getHomeZip() {
        return homeZip;
    }

    public void setHomeZip(String homeZip) {
        this.homeZip = homeZip;
    }

    public String getContactPerson() {
        return contactPerson;
    }

    public void setContactPerson(String contactPerson) {
        this.contactPerson = contactPerson;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getWbCode() {
        return wbCode;
    }

    public void setWbCode(String wbCode) {
        this.wbCode = wbCode;
    }

    public String getPyCode() {
        return pyCode;
    }

    public void setPyCode(String pyCode) {
        this.pyCode = pyCode;
    }

    public String getEnable() {
        return enable;
    }

    public void setEnable(String enable) {
        this.enable = enable;
    }

    public String getDescn() {
        return descn;
    }

    public void setDescn(String DESCN) {
        this.descn = descn;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getPosition() {
        return position;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public String getPositionText() {
        return positionText;
    }

    public void setPositionText(String positionText) {
        this.positionText = positionText;
    }

    public Date getDatesEmployedStartTime() {
        return datesEmployedStartTime;
    }

    public void setDatesEmployedStartTime(Date datesEmployedStartTime) {
        this.datesEmployedStartTime = datesEmployedStartTime;
    }

    public Date getDatesEmployedEndTime() {
        return datesEmployedEndTime;
    }

    public void setDatesEmployedEndTime(Date datesEmployedEndTime) {
        this.datesEmployedEndTime = datesEmployedEndTime;
    }

    public Date getDobStartTime() {
        return dobStartTime;
    }

    public void setDobStartTime(Date dobStartTime) {
        this.dobStartTime = dobStartTime;
    }

    public Date getDobEndTime() {
        return dobEndTime;
    }

    public void setDobEndTime(Date dobEndTime) {
        this.dobEndTime = dobEndTime;
    }

    public String getEmployeeType() {
        return employeeType;
    }

    public void setEmployeeType(String employeeType) {
        this.employeeType = employeeType;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

	public String getIdCardTypeText() {
		return idCardTypeText;
	}

	public void setIdCardTypeText(String idCardTypeText) {
		this.idCardTypeText = idCardTypeText;
	}

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }
}
